package com.jrx.anytxn.transaction.entity;

import com.jrx.anytxn.common.annotation.MethodType;
import com.jrx.anytxn.common.annotation.Model;
import com.jrx.anytxn.common.constant.CommonContants;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 贷款账户表 
 * 表:am_loan_account_info 
 * @author user 
 * @date 2022-06-15 
 */
@Model
@MethodType(CommonContants.METHOD_TYPE_UPDATE)
public class AmLoanAccountInfo {
    /**
     * 主键
     * 表字段:id
     */
    private Long id;

    /**
     * 租户ID
     * 表字段:tenant_id
     */
    private String tenantId;

    /**
     * 贷款订单id
     * 表字段:loan_id
     */
    private String loanId;

    /**
     * 机构号
     * 表字段:organization_id
     */
    private String organizationId;

    /**
     * 渠道id
     * 表字段:channel
     */
    private String channel;

    /**
     * 子渠道号
     * 表字段:sub_channel
     */
    private String subChannel;

    /**
     * 外部渠道号
     * 表字段:third_channel
     */
    private String thirdChannel;

    /**
     * 	贷款状态(0-新建 1-正常 2-逾期 7-提前结清 8-正常结清 9-取消)
     * 表字段:account_status
     */
    private String accountStatus;

    /**
     * 产品id
     * 表字段:product_id
     */
    private String productId;

    /**
     * 客户id
     * 表字段:customer_id
     */
    private String customerId;

    /**
     * 余额
     * 表字段:curr_balance
     */
    private BigDecimal currBalance;

    /**
     * 本金余额 所有已抛未还本金
     * 表字段:principal_balance
     */
    private BigDecimal principalBalance;

    /**
     * 利息余额 所有已抛未还利息
     * 表字段:interest_balance
     */
    private BigDecimal interestBalance;

    /**
     * 罚息余额 所有已抛未还罚息
     * 表字段:penalty_balance
     */
    private BigDecimal penaltyBalance;

    /**
     * 复利余额 所有已抛未还复利
     * 表字段:compound_balance
     */
    private BigDecimal compoundBalance;

    /**
     * 服务费余额 	所有已抛未还费用
     * 表字段:fee_balance
     */
    private BigDecimal feeBalance;

    /**
     * 剩余本金 	所有未还本金（包含未抛部分）
     * 表字段:remain_principal
     */
    private BigDecimal remainPrincipal;

    /**
     * 计提利息
     * 表字段:accrued_interest
     */
    private BigDecimal accruedInterest;

    /**
     * 计提罚息
     * 表字段:accrued_penalty
     */
    private BigDecimal accruedPenalty;

    /**
     * 计提复利
     * 表字段:accrued_compound
     */
    private BigDecimal accruedCompound;

    /**
     * 已抛期数
     * 表字段:cast_tenor
     */
    private Integer castTenor;

    /**
     * 已还期数
     * 表字段:payed_tenor
     */
    private Integer payedTenor;

    /**
     * 	核销标志(0-否 1-已核销)
     * 表字段:chargeoff_flag
     */
    private String chargeoffFlag;

    /**
     * 核销金额
     * 表字段:chargeoff_amount
     */
    private BigDecimal chargeoffAmount;

    /**
     * 核销日期
     * 表字段:chargeoff_date
     */
    private Date chargeoffDate;

    /**
     * 核销原因码
     * 表字段:chargeoff_reason_code
     */
    private String chargeoffReasonCode;

    /**
     * 停息标志(0=停息 1=正常计息)
     * 表字段:waive_interest_flag
     */
    private String waiveInterestFlag;

    /**
     * 停费标志(0=停费 1=正常计费)
     * 表字段:waive_fee_flag
     */
    private String waiveFeeFlag;

    /**
     * 代偿标识(0=否 1=是)
     * 表字段:compensatory_flag
     */
    private String compensatoryFlag;

    /**
     * 债权转移标识(0=否 1=是)
     * 表字段:bal_transfer_flag
     */
    private String balTransferFlag;

    /**
     * 总代偿期数
     * 表字段:total_compensatory_tenor
     */
    private Integer totalCompensatoryTenor;

    /**
     * 连续逾期期数
     * 表字段:continue_over_due_tenor
     */
    private Integer continueOverDueTenor;

    /**
     * 总逾期期数号
     * 表字段:total_over_due_tenor
     */
    private Integer totalOverDueTenor;

    /**
     * 会计状态(0=正常 1=逾期 2=呆滞 3=呆账)
     * 表字段:accounting_phase
     */
    private String accountingPhase;

    /**
     * 当前延滞天数
     * 表字段:delq_days
     */
    private Integer delqDays;

    /**
     * 非应记状态(0=应计 1=非应计)
     * 表字段:non_accruals_flag
     */
    private String nonAccrualsFlag;

    /**
     * 五级分类(0=正常 1=关注 2=次级 3=可疑 4=损失)
     * 表字段:loan_classify
     */
    private String loanClassify;

    /**
     * 下一次还款日期
     * 表字段:next_payment_date
     */
    private Date nextPaymentDate;

    /**
     * 结清日期
     * 表字段:payoff_date
     */
    private Date payoffDate;

    /**
     * 强制催收标识 0-否 1-是
     * 表字段:compel_collection_flag
     */
    private String compelCollectionFlag;

    /**
     * 贷款类型
     * 表字段:loan_type
     */
    private String loanType;

    /**
     * 创建时间
     * 表字段:create_time
     */
    private Date createTime;

    /**
     * 最后更新时间
     * 表字段:update_time
     */
    private Date updateTime;

    /**
     * 最后更新操作员
     * 表字段:update_by
     */
    private String updateBy;

    /**
     * 记录版本号
     * 表字段:record_version_number
     */
    private Integer recordVersionNumber;

    /**
     * 正常本金余额
     * 表字段:NORMAL_PRIN_BAL
     */
    private BigDecimal normalPrinBal;

    /**
     * 逾期本金余额
     * 表字段:OVDUE_PRIN_BAL
     */
    private BigDecimal ovduePrinBal;

    /**
     * 获取主键
     * @return id Long
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置主键
     * @param id 主键
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取租户ID
     * @return tenantId String
     */
    public String getTenantId() {
        return tenantId;
    }

    /**
     * 设置租户ID
     * @param tenantId 租户ID
     */
    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    /**
     * 获取贷款订单id
     * @return loanId String
     */
    public String getLoanId() {
        return loanId;
    }

    /**
     * 设置贷款订单id
     * @param loanId 贷款订单id
     */
    public void setLoanId(String loanId) {
        this.loanId = loanId;
    }

    /**
     * 获取机构号
     * @return organizationId String
     */
    public String getOrganizationId() {
        return organizationId;
    }

    /**
     * 设置机构号
     * @param organizationId 机构号
     */
    public void setOrganizationId(String organizationId) {
        this.organizationId = organizationId;
    }

    /**
     * 获取渠道id
     * @return channel String
     */
    public String getChannel() {
        return channel;
    }

    /**
     * 设置渠道id
     * @param channel 渠道id
     */
    public void setChannel(String channel) {
        this.channel = channel;
    }

    /**
     * 获取子渠道号
     * @return subChannel String
     */
    public String getSubChannel() {
        return subChannel;
    }

    /**
     * 设置子渠道号
     * @param subChannel 子渠道号
     */
    public void setSubChannel(String subChannel) {
        this.subChannel = subChannel;
    }

    /**
     * 获取外部渠道号
     * @return thirdChannel String
     */
    public String getThirdChannel() {
        return thirdChannel;
    }

    /**
     * 设置外部渠道号
     * @param thirdChannel 外部渠道号
     */
    public void setThirdChannel(String thirdChannel) {
        this.thirdChannel = thirdChannel;
    }

    /**
     * 获取	贷款状态(0-新建 1-正常 2-逾期 7-提前结清 8-正常结清 9-取消)
     * @return accountStatus String
     */
    public String getAccountStatus() {
        return accountStatus;
    }

    /**
     * 设置	贷款状态(0-新建 1-正常 2-逾期 7-提前结清 8-正常结清 9-取消)
     * @param accountStatus 	贷款状态(0-新建 1-正常 2-逾期 7-提前结清 8-正常结清 9-取消)
     */
    public void setAccountStatus(String accountStatus) {
        this.accountStatus = accountStatus;
    }

    /**
     * 获取产品id
     * @return productId String
     */
    public String getProductId() {
        return productId;
    }

    /**
     * 设置产品id
     * @param productId 产品id
     */
    public void setProductId(String productId) {
        this.productId = productId;
    }

    /**
     * 获取客户id
     * @return customerId String
     */
    public String getCustomerId() {
        return customerId;
    }

    /**
     * 设置客户id
     * @param customerId 客户id
     */
    public void setCustomerId(String customerId) {
        this.customerId = customerId;
    }

    /**
     * 获取余额
     * @return currBalance BigDecimal
     */
    public BigDecimal getCurrBalance() {
        return currBalance;
    }

    /**
     * 设置余额
     * @param currBalance 余额
     */
    public void setCurrBalance(BigDecimal currBalance) {
        this.currBalance = currBalance;
    }

    /**
     * 获取本金余额 所有已抛未还本金
     * @return principalBalance BigDecimal
     */
    public BigDecimal getPrincipalBalance() {
        return principalBalance;
    }

    /**
     * 设置本金余额 所有已抛未还本金
     * @param principalBalance 本金余额 所有已抛未还本金
     */
    public void setPrincipalBalance(BigDecimal principalBalance) {
        this.principalBalance = principalBalance;
    }

    /**
     * 获取利息余额 所有已抛未还利息
     * @return interestBalance BigDecimal
     */
    public BigDecimal getInterestBalance() {
        return interestBalance;
    }

    /**
     * 设置利息余额 所有已抛未还利息
     * @param interestBalance 利息余额 所有已抛未还利息
     */
    public void setInterestBalance(BigDecimal interestBalance) {
        this.interestBalance = interestBalance;
    }

    /**
     * 获取罚息余额 所有已抛未还罚息
     * @return penaltyBalance BigDecimal
     */
    public BigDecimal getPenaltyBalance() {
        return penaltyBalance;
    }

    /**
     * 设置罚息余额 所有已抛未还罚息
     * @param penaltyBalance 罚息余额 所有已抛未还罚息
     */
    public void setPenaltyBalance(BigDecimal penaltyBalance) {
        this.penaltyBalance = penaltyBalance;
    }

    /**
     * 获取复利余额 所有已抛未还复利
     * @return compoundBalance BigDecimal
     */
    public BigDecimal getCompoundBalance() {
        return compoundBalance;
    }

    /**
     * 设置复利余额 所有已抛未还复利
     * @param compoundBalance 复利余额 所有已抛未还复利
     */
    public void setCompoundBalance(BigDecimal compoundBalance) {
        this.compoundBalance = compoundBalance;
    }

    /**
     * 获取服务费余额 	所有已抛未还费用
     * @return feeBalance BigDecimal
     */
    public BigDecimal getFeeBalance() {
        return feeBalance;
    }

    /**
     * 设置服务费余额 	所有已抛未还费用
     * @param feeBalance 服务费余额 	所有已抛未还费用
     */
    public void setFeeBalance(BigDecimal feeBalance) {
        this.feeBalance = feeBalance;
    }

    /**
     * 获取剩余本金 	所有未还本金（包含未抛部分）
     * @return remainPrincipal BigDecimal
     */
    public BigDecimal getRemainPrincipal() {
        return remainPrincipal;
    }

    /**
     * 设置剩余本金 	所有未还本金（包含未抛部分）
     * @param remainPrincipal 剩余本金 	所有未还本金（包含未抛部分）
     */
    public void setRemainPrincipal(BigDecimal remainPrincipal) {
        this.remainPrincipal = remainPrincipal;
    }

    /**
     * 获取计提利息
     * @return accruedInterest BigDecimal
     */
    public BigDecimal getAccruedInterest() {
        return accruedInterest;
    }

    /**
     * 设置计提利息
     * @param accruedInterest 计提利息
     */
    public void setAccruedInterest(BigDecimal accruedInterest) {
        this.accruedInterest = accruedInterest;
    }

    /**
     * 获取计提罚息
     * @return accruedPenalty BigDecimal
     */
    public BigDecimal getAccruedPenalty() {
        return accruedPenalty;
    }

    /**
     * 设置计提罚息
     * @param accruedPenalty 计提罚息
     */
    public void setAccruedPenalty(BigDecimal accruedPenalty) {
        this.accruedPenalty = accruedPenalty;
    }

    /**
     * 获取计提复利
     * @return accruedCompound BigDecimal
     */
    public BigDecimal getAccruedCompound() {
        return accruedCompound;
    }

    /**
     * 设置计提复利
     * @param accruedCompound 计提复利
     */
    public void setAccruedCompound(BigDecimal accruedCompound) {
        this.accruedCompound = accruedCompound;
    }

    /**
     * 获取已抛期数
     * @return castTenor Integer
     */
    public Integer getCastTenor() {
        return castTenor;
    }

    /**
     * 设置已抛期数
     * @param castTenor 已抛期数
     */
    public void setCastTenor(Integer castTenor) {
        this.castTenor = castTenor;
    }

    /**
     * 获取已还期数
     * @return payedTenor Integer
     */
    public Integer getPayedTenor() {
        return payedTenor;
    }

    /**
     * 设置已还期数
     * @param payedTenor 已还期数
     */
    public void setPayedTenor(Integer payedTenor) {
        this.payedTenor = payedTenor;
    }

    /**
     * 获取	核销标志(0-否 1-已核销)
     * @return chargeoffFlag String
     */
    public String getChargeoffFlag() {
        return chargeoffFlag;
    }

    /**
     * 设置	核销标志(0-否 1-已核销)
     * @param chargeoffFlag 	核销标志(0-否 1-已核销)
     */
    public void setChargeoffFlag(String chargeoffFlag) {
        this.chargeoffFlag = chargeoffFlag;
    }

    /**
     * 获取核销金额
     * @return chargeoffAmount BigDecimal
     */
    public BigDecimal getChargeoffAmount() {
        return chargeoffAmount;
    }

    /**
     * 设置核销金额
     * @param chargeoffAmount 核销金额
     */
    public void setChargeoffAmount(BigDecimal chargeoffAmount) {
        this.chargeoffAmount = chargeoffAmount;
    }

    /**
     * 获取核销日期
     * @return chargeoffDate Date
     */
    public Date getChargeoffDate() {
        return chargeoffDate;
    }

    /**
     * 设置核销日期
     * @param chargeoffDate 核销日期
     */
    public void setChargeoffDate(Date chargeoffDate) {
        this.chargeoffDate = chargeoffDate;
    }

    /**
     * 获取核销原因码
     * @return chargeoffReasonCode String
     */
    public String getChargeoffReasonCode() {
        return chargeoffReasonCode;
    }

    /**
     * 设置核销原因码
     * @param chargeoffReasonCode 核销原因码
     */
    public void setChargeoffReasonCode(String chargeoffReasonCode) {
        this.chargeoffReasonCode = chargeoffReasonCode;
    }

    /**
     * 获取停息标志(0=停息 1=正常计息)
     * @return waiveInterestFlag String
     */
    public String getWaiveInterestFlag() {
        return waiveInterestFlag;
    }

    /**
     * 设置停息标志(0=停息 1=正常计息)
     * @param waiveInterestFlag 停息标志(0=停息 1=正常计息)
     */
    public void setWaiveInterestFlag(String waiveInterestFlag) {
        this.waiveInterestFlag = waiveInterestFlag;
    }

    /**
     * 获取停费标志(0=停费 1=正常计费)
     * @return waiveFeeFlag String
     */
    public String getWaiveFeeFlag() {
        return waiveFeeFlag;
    }

    /**
     * 设置停费标志(0=停费 1=正常计费)
     * @param waiveFeeFlag 停费标志(0=停费 1=正常计费)
     */
    public void setWaiveFeeFlag(String waiveFeeFlag) {
        this.waiveFeeFlag = waiveFeeFlag;
    }

    /**
     * 获取代偿标识(0=否 1=是)
     * @return compensatoryFlag String
     */
    public String getCompensatoryFlag() {
        return compensatoryFlag;
    }

    /**
     * 设置代偿标识(0=否 1=是)
     * @param compensatoryFlag 代偿标识(0=否 1=是)
     */
    public void setCompensatoryFlag(String compensatoryFlag) {
        this.compensatoryFlag = compensatoryFlag;
    }

    /**
     * 获取债权转移标识(0=否 1=是)
     * @return balTransferFlag String
     */
    public String getBalTransferFlag() {
        return balTransferFlag;
    }

    /**
     * 设置债权转移标识(0=否 1=是)
     * @param balTransferFlag 债权转移标识(0=否 1=是)
     */
    public void setBalTransferFlag(String balTransferFlag) {
        this.balTransferFlag = balTransferFlag;
    }

    /**
     * 获取总代偿期数
     * @return totalCompensatoryTenor Integer
     */
    public Integer getTotalCompensatoryTenor() {
        return totalCompensatoryTenor;
    }

    /**
     * 设置总代偿期数
     * @param totalCompensatoryTenor 总代偿期数
     */
    public void setTotalCompensatoryTenor(Integer totalCompensatoryTenor) {
        this.totalCompensatoryTenor = totalCompensatoryTenor;
    }

    /**
     * 获取连续逾期期数
     * @return continueOverDueTenor Integer
     */
    public Integer getContinueOverDueTenor() {
        return continueOverDueTenor;
    }

    /**
     * 设置连续逾期期数
     * @param continueOverDueTenor 连续逾期期数
     */
    public void setContinueOverDueTenor(Integer continueOverDueTenor) {
        this.continueOverDueTenor = continueOverDueTenor;
    }

    /**
     * 获取总逾期期数号
     * @return totalOverDueTenor Integer
     */
    public Integer getTotalOverDueTenor() {
        return totalOverDueTenor;
    }

    /**
     * 设置总逾期期数号
     * @param totalOverDueTenor 总逾期期数号
     */
    public void setTotalOverDueTenor(Integer totalOverDueTenor) {
        this.totalOverDueTenor = totalOverDueTenor;
    }

    /**
     * 获取会计状态(0=正常 1=逾期 2=呆滞 3=呆账)
     * @return accountingPhase String
     */
    public String getAccountingPhase() {
        return accountingPhase;
    }

    /**
     * 设置会计状态(0=正常 1=逾期 2=呆滞 3=呆账)
     * @param accountingPhase 会计状态(0=正常 1=逾期 2=呆滞 3=呆账)
     */
    public void setAccountingPhase(String accountingPhase) {
        this.accountingPhase = accountingPhase;
    }

    /**
     * 获取当前延滞天数
     * @return delqDays Integer
     */
    public Integer getDelqDays() {
        return delqDays;
    }

    /**
     * 设置当前延滞天数
     * @param delqDays 当前延滞天数
     */
    public void setDelqDays(Integer delqDays) {
        this.delqDays = delqDays;
    }

    /**
     * 获取非应记状态(0=应计 1=非应计)
     * @return nonAccrualsFlag String
     */
    public String getNonAccrualsFlag() {
        return nonAccrualsFlag;
    }

    /**
     * 设置非应记状态(0=应计 1=非应计)
     * @param nonAccrualsFlag 非应记状态(0=应计 1=非应计)
     */
    public void setNonAccrualsFlag(String nonAccrualsFlag) {
        this.nonAccrualsFlag = nonAccrualsFlag;
    }

    /**
     * 获取五级分类(0=正常 1=关注 2=次级 3=可疑 4=损失)
     * @return loanClassify String
     */
    public String getLoanClassify() {
        return loanClassify;
    }

    /**
     * 设置五级分类(0=正常 1=关注 2=次级 3=可疑 4=损失)
     * @param loanClassify 五级分类(0=正常 1=关注 2=次级 3=可疑 4=损失)
     */
    public void setLoanClassify(String loanClassify) {
        this.loanClassify = loanClassify;
    }

    /**
     * 获取下一次还款日期
     * @return nextPaymentDate Date
     */
    public Date getNextPaymentDate() {
        return nextPaymentDate;
    }

    /**
     * 设置下一次还款日期
     * @param nextPaymentDate 下一次还款日期
     */
    public void setNextPaymentDate(Date nextPaymentDate) {
        this.nextPaymentDate = nextPaymentDate;
    }

    /**
     * 获取结清日期
     * @return payoffDate Date
     */
    public Date getPayoffDate() {
        return payoffDate;
    }

    /**
     * 设置结清日期
     * @param payoffDate 结清日期
     */
    public void setPayoffDate(Date payoffDate) {
        this.payoffDate = payoffDate;
    }

    /**
     * 获取强制催收标识 0-否 1-是
     * @return compelCollectionFlag String
     */
    public String getCompelCollectionFlag() {
        return compelCollectionFlag;
    }

    /**
     * 设置强制催收标识 0-否 1-是
     * @param compelCollectionFlag 强制催收标识 0-否 1-是
     */
    public void setCompelCollectionFlag(String compelCollectionFlag) {
        this.compelCollectionFlag = compelCollectionFlag;
    }

    /**
     * 获取贷款类型
     * @return loanType String
     */
    public String getLoanType() {
        return loanType;
    }

    /**
     * 设置贷款类型
     * @param loanType 贷款类型
     */
    public void setLoanType(String loanType) {
        this.loanType = loanType;
    }

    /**
     * 获取创建时间
     * @return createTime Date
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置创建时间
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 获取最后更新时间
     * @return updateTime Date
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 设置最后更新时间
     * @param updateTime 最后更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取最后更新操作员
     * @return updateBy String
     */
    public String getUpdateBy() {
        return updateBy;
    }

    /**
     * 设置最后更新操作员
     * @param updateBy 最后更新操作员
     */
    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    /**
     * 获取记录版本号
     * @return recordVersionNumber Integer
     */
    public Integer getRecordVersionNumber() {
        return recordVersionNumber;
    }

    /**
     * 设置记录版本号
     * @param recordVersionNumber 记录版本号
     */
    public void setRecordVersionNumber(Integer recordVersionNumber) {
        this.recordVersionNumber = recordVersionNumber;
    }

    /**
     * 获取正常本金余额
     * @return normalPrinBal BigDecimal
     */
    public BigDecimal getNormalPrinBal() {
        return normalPrinBal;
    }

    /**
     * 设置正常本金余额
     * @param normalPrinBal 正常本金余额
     */
    public void setNormalPrinBal(BigDecimal normalPrinBal) {
        this.normalPrinBal = normalPrinBal;
    }

    /**
     * 获取逾期本金余额
     * @return ovduePrinBal BigDecimal
     */
    public BigDecimal getOvduePrinBal() {
        return ovduePrinBal;
    }

    /**
     * 设置逾期本金余额
     * @param ovduePrinBal 逾期本金余额
     */
    public void setOvduePrinBal(BigDecimal ovduePrinBal) {
        this.ovduePrinBal = ovduePrinBal;
    }
}